3
תגובות

נתיב משתנה

פתח soogo ,
יש לי קובץ בתיקייה הראשית עם include ל init.php
יש לי גם קובץ בתיקייה משנית עם include ל init.php

נתיב משתנה
והבעייה זה שב init.php יש
function CallClases($Class)
    {
        require('Clases/' . $Class . '.php');
    }
    spl_autoload_register('CallClases');

אז בעצם כשאני משתמש ב init.php מתקייה משנית הוא לא עובד כי הנתיב משתנה

3 תשובות

avatar ענה yonikal56 ב 13 ליוני 2014 #

לפני התיקיה אתה מוסיף /../ והשתי נקודות יוצאות לתיקיה המרכזית.

avatar ענה Splash ב 13 ליוני 2014 #

במקום להתחיל להסתבך כל פעם כמה נקודות אתה צריך לרשום,תשתמש בנתיב מלא.
בדף של ההגדרות תיצור קבוע ששם מאוחסן הנתיב הראשי של הסקריפט ,בצורה הזאת -

define('ROOT','my/path/');


ואז כל פעם שאתה רוצה לגשת לקובץ \ תיקיה מסוימת תעשה זאת כך -
include ROOT.'folder/file.php';

avatar ענה intval ב 14 ליוני 2014 #

באופן כללי splash נתן פתרון מעולה.
--
אני אישית פחות אוהב קבועים גלובלים ולכן אני מעדיף להישתמש בנתיבים יחסיים. היות שהיחס מקום בין הקובץ init לבין התיקיה classes קבוע ואינו תלוי בקובץ המופעל, אפשר להישתמש בו בתור הבסיס לנתיב, למשל בצורה הבאה:

spl_autoload_register(function(){
    require(__DIR__.'/../Classes/' . $Class . '.php');
  });


הקבוע __DIR__ תמיד מכיל את שם התיקיה שבה נמצא הקובץ שבתוכו הקבוע נמצא.
אם תשתמש בקבוע הזה בתוך הקובץ init הערך של __DIR__ יהיה core
אם תשתמש בקבוע הזה בתוך הקובץ menu הערך שלו היה ControlPanel